package homework.level01model03.homework05;

import javax.swing.plaf.basic.BasicScrollPaneUI;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;

public class DouDiZhou {
    /*
    * 使用集合实现斗地主游戏的部分功能，要求如下：

 （1）首先准备 54 张扑克牌并打乱顺序。

 （2）由三个玩家交替摸牌，每人 17 张扑克牌，最后三张留作底牌。

 （3）查看三个玩家手中的扑克牌和底牌。

 （4）其中玩家手中的扑克牌需要按照大小顺序打印，规则如下：

    手中扑克牌从大到小的摆放顺序：大王,小王,2,A,K,Q,J,10,9,8,7,6,5,4,3

    *
    * */
    public static void main(String[] args) {
        //（1）首先准备 54 张扑克牌并打乱顺序。
    //hashmap cun pai key value
        HashMap<Integer,String> hashMap = new HashMap<>();
        //list key
        ArrayList<Integer> arrayList = new ArrayList<>();
        // shuttle

        String[] num = {"2","A","K","Q","J","10","9","8","7","6","5","4","3"};
        String[] color ={"♤", "♡", "♣", "♢"};

        hashMap.put(0,"大王");
        hashMap.put(1,"小王");
        arrayList.add(0);
        arrayList.add(1);

        int index = 2;
        for (String s : num) {
            for (String s1 : color) {
                hashMap.put(index,s1+s);
                arrayList.add(index);
                index++;
            }
        }

        Collections.shuffle(arrayList);
        //System.out.println(arrayList);

        System.out.println("准备54张扑克牌并打乱顺序");
        System.out.println("扑克牌："+hashMap);

        ArrayList<Integer> bottom = new ArrayList<>();
        ArrayList<Integer> p1 = new ArrayList<>();
        ArrayList<Integer> p2 = new ArrayList<>();
        ArrayList<Integer> p3 = new ArrayList<>();

        for (Integer integer : arrayList) {
            //获取 索引
            int i1 = arrayList.indexOf(integer);
            //获取某元素的值
            int i = integer.intValue();
            //System.out.println(i1);
            if (i1<3){
                bottom.add(integer);
            }else if(i1%3==0){
                p1.add(integer);
            }else if(i1%3==1){
                p2.add(integer);
            }else if(i1%3==2){
                p3.add(integer);
            }
        }

        System.out.println("发牌:");
        show("底牌",hashMap,bottom);
        show("玩家1",hashMap,p1);
        show("玩家2",hashMap,p2);
        show("玩家3",hashMap,p3);
    }

     public static void show(String s,HashMap<Integer,String> hashMap,ArrayList<Integer> arrayList) {
        System.out.println(s);
         for (Integer integer : arrayList) {
             System.out.print(hashMap.get(integer)+" ");
         }
         System.out.println();

     }

}
